package com.allen.mapper;

import com.allen.bean.Mywork;
import com.allen.bean.Work;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Mapper //标记mapper文件位置，否则在Application.class启动类上配置mapper包扫描
@Repository
public interface MyworkMapper {

    /**
     * 根据用户名查询对应用户的作品
     * 以集合的形式返回
     * @Param Myworks
     * @Select
     * @return
     */

    @Select(value="select*from myworks where username=#{username}")
    @Results
            ({@Result(property = "username",column = "username")})    //@Result：为了解决数据库字段名与实体类属性名不一致的问题,//column:数据库字段名，property：实体类属性名
    List<Mywork> findWorksByName(@Param("username") String username);

    /**
     * 上传用户作品
     * @Param Myworks
     * @Insert
     * @return
     */

    @Insert("insert into myworks values(#{id},#{username},#{u_font},#{img_address},#{sub_day},#{sub_week},#{sub_yymm},#{eye_count},#{sum_com},#{sum_like})")
    //加入该注解可以保存对象后，查看对象插入id
    @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
    void sub(Mywork mywork);

    /**
     * 查询所有用户发布的所有作品
     * @return
     */
    @Select(value="select*from myworks")
    List<Mywork> findAll();

    /**
     * 更新浏览量
     */
    @Update(value="update myworks set eye_count=eye_count+1 where username=#{username} and u_font=#{content}")
    Integer addeye(Work work);
}
